In coding processing of moving pictures, an amount of information is generally reduced using redundancy of the moving pictures in spatial and temporal directions. Here, a general method using the redundancy in the spatial direction is represented by the transformation into frequency domain while a general method using the redundancy in the temporal direction is represented by inter-picture prediction (hereinafter, referred to as inter prediction) coding process. In the inter prediction coding process, when coding a certain picture, a coded picture located before or after the current picture to be coded in display time order is used as a reference picture. Subsequently, a motion vector of the current picture with respect to the reference picture is derived by motion estimation, and a difference between image data of the current picture and prediction image data resulting from motion compensation based on the motion vector is calculated to remove the redundancy in the temporal direction. Here, in the motion estimation, a difference value between a current block to be coded in the current picture and a block in the reference picture is calculated, and a block having the smallest difference value in the reference picture is determined as a reference block. The motion vector is then estimated using the current block and the reference block.
In the moving picture coding scheme referred to as H. 264, which has already been standardized, three types of pictures: I-picture; P-picture; and B-picture, are used to reduce the amount of information. The I-picture is a picture on which no inter prediction coding process is performed, that is, on which a coding process using intra-picture prediction (hereinafter, referred to as intra prediction) is performed. The P-picture is a picture on which the inter prediction coding is performed with reference to one coded picture located before or after the current picture in display time order. The B-picture is a picture on which the inter prediction coding is performed with reference to two coded pictures located before or after the current picture in display time order.
Furthermore, in the moving picture coding scheme referred to as H. 264, as an inter prediction coding mode for each block in the B picture, there is a motion vector estimation mode in which (i) a difference value between prediction image data and image data of a current block and (ii) a motion vector used for generating the prediction image data are coded. In the motion vector estimation mode, bidirectional prediction or unidirectional prediction can be selected as a prediction direction. In the bidirectional prediction, a prediction image is generated by referring to two coded pictures located before or after the current picture. In the unidirectional prediction, a prediction image is generated by referring to one coded picture located before or after the current picture.
Furthermore, in the moving picture coding scheme referred to as H. 264, a coding mode referred to as a temporal motion vector predictor mode can be selected to derive a motion vector in coding the B-picture. A description is given of an inter prediction coding method in the temporal motion vector predictor mode, referring to FIG. 1. FIG. 1 is a schematic diagram showing motion vectors in the temporal motion vector predictor mode, and illustrates a case where a block “a” of a picture B2 is coded in the temporal motion vector predictor mode. In this case, a motion vector “a” is used which has been used to code a block “b”, co-located with the block “a”, in a picture P3 serving as a reference picture located after the picture B2. The motion vector “a” is a motion vector which has been used to code the block “b” and refers to a picture P1. The block “a” is coded using bidirectional prediction with reference to reference blocks which are obtained, using motion vectors parallel to the motion vector “a”, from the picture P1 serving as a forward reference picture and the picture P3 serving as a backward reference picture. More specifically, the motion vectors used in coding the block “a” are the motion vector “b” for the picture P1 and a motion vector “c” for the picture P3.